# -*- coding:utf-8 -*- #一般默认格式
print("安全防攻")
print("安全防攻", end="")  # 内容一行输出
print("lalal")
# 整型（int）,加减乘除
print(10 % 3)
print(int(10 / 3))
# 字符串(str)，字符串的内容必须用双引号引起来,涉及到文本，单引号和双引号的效果一样的
# 单双引号只能是一行，三引号支持多行（单双都行）
# +号进行拼接
print("我叫小唐")
# bool类型，两值True/False(真假)
# 支持比较：同类型比较，整形和字符串也可以比较==，整形和字符串不能比较大小
print(1 > 2)
print(True)
# name=input("输入姓名：")
# if name=="您好":
#     print("登录成功")
# else:
#     print("登录失败")
# print(1>"eerr")
# 类型转换：将前面需转换的类型放在前面,字符串不支持加减，只能拼接
print("6" + "9")
print(int("6") + int("9"))
# 类型转换过后是一个新值
'''
bool转换为整形只能转换为1或0
整形转字符型前面加上str()
bool类型转换为字符串为"True""False"
整形转化为bool类型只能是True或False,但0转换为bool类型为False
所有的字符串转为bool类型全是True，只有空字符串为False
类型转换不是改变原来的值，而是重新再底层创建一个新值
只有0和空转换为bool型是False，其他的都是True
'''
print(8 > 10)
print("wupeiqi" == "alex")
print(3 * "我爱祖国\n")
print(bool("您好"))
print(str(111) == 111)
# 变量直接赋值，一个=号是变量、赋值，两个==是判断比较，返回的是bool值
'''
变量名只能由字母，数字，下划线组成，数字不能开头，关键词也不能
一般下划线连接命名（小写），查字典
没使用过的变量再编译时会清除，新变量会代替旧变量
'''
flag = 1 > 12
print(flag)
liu_name = "果果果"
print(liu_name)
'''输入：实现用户之间的交互,输入的内容都是当作字符串处理，本质是字符串，
字符串不能做加减运算，只能拼接
if else代码缩进为4个字符
'''
# name=input("用户名")
# password=input("密码")
# if name=="root"and password=="123":
#     print("登录成功")
#     if name=="root":
#         print("表白")
#     else:
#        print("表白成功")
# else:
#    print("登录失败")
flage = True
while flage:
    print("恋爱机器人模拟、退出请按Q")
    choice = input("你是小哥哥还是小姐姐呀：")
    if choice == "小哥哥":
        print("小哥哥，要女朋友吗")
        need = input()
        if need == "要":
            print("那你要漂亮的还是超级漂亮的")
            need2 = input()
            if need2 == "漂亮的":
                print("漂亮的被人领走了")
            elif need2 == "超级漂亮的":
                print("超级漂亮太为难我了")
            elif need2 == "":
                print("配女朋友去吧")
        else:
            print("都2021了，活该你还母胎单身")
    elif choice == "小姐姐":
        print("小姐姐，你不配")
    elif choice == "Q":
        break
    else:
        print("相关功能正在开发中....")
'''
while 条件:如果条件成立为真，则执行缩进里面的代码，直到条件为假为止
while再用在登录判断是，一般先设立一个判断标志，之后正确输入之后改变标志
pass什么都不执行，只是为了保持代码结构的完整性
break结束当前那层循环，后面的循环也不再执行，一般用在while中
写代码时，需要结束本溪循环，一是break调出循环，二是条件判断结束
continue用于结束本次循环，不管后面还有多少东西，开始下一次循环
while else:只有while里的条件不成立时，才会执行else里的东西，break跳出也不会执行
字符串之间格式样的拼接：%,format(常用),f（3.6版本以后）
%做字符串格式，%s%d,%(变量1，变量2)，%号占位符再遇到分数时采用%%形式输出
.format值代替放在中括号里
f格式化直接放在文本前面，支持计算，用中括号括起来(万能)
"akdkfjkd" in "hshd":判断后面的值有没有包含在里面，如果有，则返回True，没有返回False
not in :和in相反
and在比较时返回的是True或False,在字符串中使用时值是跟着最后一个走的（第一个为真的话）。
      但前面一个为空则取决于前面的空值
or取决于前面的第一个值，有空值则往后面的值推
计算时先计算and再计算or
'''
# True既是1，False既是0

'''
0b表示二进制
bit_length():获取整型有多少位组成
python3整形无限大
# 数据类型
v1 = 5
# 转换成二进制
print(bin(v1))
result = v1.bit_length()
print("获取整型的二进制有多少个位组成", result)
print(9 / 2)
# 判断字符串中是否是以某个字符开头
string = "  我  是akddfjdj小学生"
print(string)
string2 = "123456789"
string3 = "熊|262355|08714568"
print(string.startswith("我是"))
# 判断字符串中是否是以某个字符结尾
print(string.endswith("大学生"))
# 判断输入的字符串是否是整数
print(string2.isdecimal())
# 去除字符串两边的空白，换行符、制表符
print(string.strip())
# 去除两边指定的内容
print(string.strip(" 生"))
# 将字符串里面的内容去全变成大写
print(string.upper())
# 将字符串变成小写
print(string.lower())
# 将原字符串中的内容变换成其他内容，但原字符串中的内容不改变
print(string.replace("学生", "****"))
char_list = {'都比', '逗逼'}
content = "逗逼豆豆福哦的疯狂的疯狂"
for item in char_list:
    content = content.replace(item, "**")
    print(content)
# 字符串切割，得到一个列表
print(string3.split("|"))
# 把字符串从右向左切割
print(string3.rsplit("|", 1))
# 把字符串从左向右切割lsplit()
#把字符串拼接在一起，一般是列表的形式拼接起来
data_list={'alex','是','老师'}
data1="_".join(data_list)
print(data1)

'''
'''
range帮助我们创建一系列的数字
列表[]：可以存放多种数据类型,添加单个值时使用append(),append不能用于字典
字符串自创建起就不再可变,列表是可以变的
使用extend()对列表进行批量添加（往后加）
列表中的索引也是从0开始的，在插入数据时可以按照索引值插入，使用insert(1,'值')插入

列表中随机抽取列表中的值：random.choice(列表)
删除列表中的数据：remove("")，在删除前可进行判断
根据索引位置删除列表中的值：list.pop(1),如果不写则默认删除最后一个值
可以根据据列表的索引进行修改（直接赋值），删除列表值del list[1]
清空列表里所有的值：list.clear()
根据列表中的值获取索引：list.index("值")
让列表从小到大进行排序：list.sort(),使用sort()对字符串进行排序时会把字符串转换为unicode格式
使列表进行反转：list.reverse()



'''

#列表（list）：有序可变的容器，可存在多种类型

